package com.bprogram.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.bprogram.pojo.Upload;
import com.qiniu.storage.model.FileInfo;
import org.springframework.web.multipart.MultipartFile;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author cai
 * @since 2023-11-21
 */
public interface UploadService extends IService<Upload> {




        /**
         * 上传文件
         *
         * @param file 上传的文件
         * @return key 文件存储的路径
         */
        String uploadFile(MultipartFile file ,String type)  throws RuntimeException;

        /**
         * 删除文件
         *
         * @param key 文件的key
         * @return 删除成功返回true, 否则返回false
         */
        Boolean deleteFile(String key) throws RuntimeException;

        /**
         * 获取文件访问的路径
         *
         * @param filePath 文件存储的相对路径
         * @return 文件的访问路径
         */
        String getFileAskingPath(String filePath);

        /**
         * 检查文件是否存在于七牛云
         *
         * @param key 文件的key
         * @return 文件信息，若为null代表不存在
         */
        FileInfo checkFile(String key);


        Upload saveOrUpdateUpload( Upload upload) ;


        /**
         * 定时执行删除文件
         * @return
         */
        boolean delete();
}
